Report missing text favorites based on drawing annotation
The below code finds the missing text favorites from the annotation definitions used in drawing.
//Required References
using System.Collections.Generic;
using Bentley.CifNET.ContentManagementModel;
using System.Diagnostics;
public void ReportMissingTextFavoritesBasedOnDrawingAnnotation()
{
//Get object space
Bentley.CifNET.CadSystem.IObjectSpaceManager objectSpaceManager = Bentley.CifNET.ServiceManager.Instance.GetService<Bentley.CifNET.CadSystem.IObjectSpaceManager>();
if (objectSpaceManager == null) return;
Bentley.CifNET.Objects.IObjectSpace objectSpace = objectSpaceManager.ObjectSpace;
if (objectSpace == null) return;
//Get ContentManagementModel
Bentley.CifNET.ContentManagementModel.ContentManagementModel cmm = Bentley.CifNET.ContentManagementModel.ContentManagementModel.GetContentManagementModel(objectSpace, Bentley.CifNET.Model.GetModelOptions.CheckIfExist);
if (cmm == null) return;
//Get all annotation groups used in current DGN
AnnotationGroupNameSet annotationGroupNameSet = cmm.AnnotationGroupNameSet;
foreach (Bentley.CifNET.ContentManagementModel.AnnotationGroup annotationGroup in annotationGroupNameSet)
{
//Get annotation definitions from group
IEnumerable<Bentley.CifNET.ContentManagementModel.AnnotationDefinition> annotationDefinitions = annotationGroup.AnnotationDefinitions;
foreach (Bentley.CifNET.ContentManagementModel.AnnotationDefinition annotationDefinition in annotationDefinitions)
{
if (annotationDefinition.ParentCategory.Name == "Drawing")
{
//Get annotation definition parameters
Bentley.ECObjects.Instance.IECInstance iECInstance = annotationDefinition.Parameters;
if (iECInstance == null) continue;
//Get text favorite value from parameters
Bentley.ECObjects.Instance.IECPropertyValue value = iECInstance.GetPropertyValue("Favorite");
if (value == null) continue;
string val = "";
bool status = value.TryGetStringValue(out val);
if (val == "")
{
Trace.WriteLine("Missing text favorite :" + "GroupName :" + annotationGroup.Name + "," + "AnnotationDefinition:" + annotationDefinition.Name);
}
}
}
}
}